In a network, network congestion occurs when a link or node is carrying so much data that its quality of service deteriorates. Typical effects include queuing delay, packet loss, or the blocking of new connections.
In order to minimize network congestion, network congestion avoidance systems attempt various control and avoidance schemes. Along these lines, conventional approaches to network congestion avoidance involve monitoring dropped packets and timeouts in the network. For example, in a scheme known as additive increase multiplicative decrease (AIMD), a controller incrementally adds a constant amount to a data transmission rate at successive time steps until it detects dropped packets. When this detection occurs, the network congestion avoidance system decreases the transmission rate by a predetermined percentage, and begins the process anew. In this way, a network congestion avoidance system may gauge the optimal rate at which it may transmit data packets reliably.